#include <simulatorV1/lexer/keywords.h>

Keywords::Keywords() {
    m_keywordTable["A0"] = Tag::A0;
    m_keywordTable["A1"] = Tag::A1;
    m_keywordTable["A2"] = Tag::A2;
    m_keywordTable["A3"] = Tag::A3;
    m_keywordTable["A4"] = Tag::A4;
    m_keywordTable["A5"] = Tag::A5;
    m_keywordTable["A6"] = Tag::A6;
    m_keywordTable["A7"] = Tag::A7;
    m_keywordTable["A8"] = Tag::A8;
    m_keywordTable["A9"] = Tag::A9;
    m_keywordTable["A10"] = Tag::A10;
    m_keywordTable["A11"] = Tag::A11;
    m_keywordTable["A12"] = Tag::A12;
    m_keywordTable["A13"] = Tag::A13;
    m_keywordTable["A14"] = Tag::A14;
    m_keywordTable["A15"] = Tag::A15;
    m_keywordTable["A16"] = Tag::A16;
    m_keywordTable["A17"] = Tag::A17;
    m_keywordTable["A18"] = Tag::A18;
    m_keywordTable["A19"] = Tag::A19;
    m_keywordTable["A20"] = Tag::A20;
    m_keywordTable["A21"] = Tag::A21;
    m_keywordTable["A22"] = Tag::A22;
    m_keywordTable["A23"] = Tag::A23;
    m_keywordTable["A24"] = Tag::A24;
    m_keywordTable["A25"] = Tag::A25;
    m_keywordTable["A26"] = Tag::A26;
    m_keywordTable["A27"] = Tag::A27;
    m_keywordTable["A28"] = Tag::A28;
    m_keywordTable["A29"] = Tag::A29;
    m_keywordTable["A30"] = Tag::A30;
    m_keywordTable["A31"] = Tag::A31;
    m_keywordTable["B0"] = Tag::B0;
    m_keywordTable["B1"] = Tag::B1;
    m_keywordTable["B2"] = Tag::B2;
    m_keywordTable["B3"] = Tag::B3;
    m_keywordTable["B4"] = Tag::B4;
    m_keywordTable["B5"] = Tag::B5;
    m_keywordTable["B6"] = Tag::B6;
    m_keywordTable["B7"] = Tag::B7;
    m_keywordTable["B8"] = Tag::B8;
    m_keywordTable["B9"] = Tag::B9;
    m_keywordTable["B10"] = Tag::B10;
    m_keywordTable["B11"] = Tag::B11;
    m_keywordTable["B12"] = Tag::B12;
    m_keywordTable["B13"] = Tag::B13;
    m_keywordTable["B14"] = Tag::B14;
    m_keywordTable["B15"] = Tag::B15;
    m_keywordTable["B16"] = Tag::B16;
    m_keywordTable["B17"] = Tag::B17;
    m_keywordTable["B18"] = Tag::B18;
    m_keywordTable["B19"] = Tag::B19;
    m_keywordTable["B20"] = Tag::B20;
    m_keywordTable["B21"] = Tag::B21;
    m_keywordTable["B22"] = Tag::B22;
    m_keywordTable["B23"] = Tag::B23;
    m_keywordTable["B24"] = Tag::B24;
    m_keywordTable["B25"] = Tag::B25;
    m_keywordTable["B26"] = Tag::B26;
    m_keywordTable["B27"] = Tag::B27;
    m_keywordTable["B28"] = Tag::B28;
    m_keywordTable["B29"] = Tag::B29;
    m_keywordTable["B30"] = Tag::B30;
    m_keywordTable["B31"] = Tag::B31;
}

Tag Keywords::getTag(std::string name){
    return m_keywordTable.find(name) != m_keywordTable.end() ? m_keywordTable[name] : Tag::ID;
}